#ifndef		States__IState_h
#define		States__IState_h

class StateMachine;

class IState
{
public:
	IState(unsigned int id, StateMachine * machine);
	virtual ~IState();
	virtual void update(double delay) = 0;
	virtual void render() const = 0;
	virtual void changingState(bool active) = 0;
	unsigned int Id() const;
protected:
	StateMachine * m_machine;
private:
	unsigned int m_id;
};

#endif	//	States__IState_h

